package com.baoyouqun.domain.VO;

import com.alibaba.fastjson2.JSON;
import com.baoyouqun.entity.SystemConfig;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

@Data
public class SmsTemplateDTO {
    /**
     * 短信模板列表（每个模板包含ID和对应内容）
     */
    private List<SmsTemplateItem> templates;

    /**
     * 从SystemConfig转换为DTO：info8（JSON字符串）→ 模板列表
     */
    public static SmsTemplateDTO fromSystemConfig(SystemConfig config) {
        SmsTemplateDTO dto = new SmsTemplateDTO();
        if (Objects.isNull(config) || Objects.isNull(config.getInfo8())) {
            dto.setTemplates(new ArrayList<>());
            return dto;
        }
        // 解析info8的JSON字符串为List<SmsTemplateItem>
        dto.setTemplates(JSON.parseArray(config.getInfo8(), SmsTemplateItem.class));
        return dto;
    }

    /**
     * 将DTO转换为SystemConfig：模板列表→info8（JSON字符串）
     */
    public void toSystemConfig(SystemConfig config) {
        if (Objects.nonNull(config)) {
            // 转换模板列表为JSON字符串，存入info8
            String templateJson = JSON.toJSONString(this.getTemplates());
            config.setInfo8(templateJson);
            // 自动更新时间（与现有配置逻辑对齐）
            config.setUpdateTime(java.time.LocalDateTime.now());
        }
    }

    /**
     * 子项：单个短信模板的ID和内容
     */
    @Data
    public static class SmsTemplateItem {
        /**
         * 阿里云短信模板标题
         */
        private String title;
        /**
         * 阿里云短信模板ID（如SMS_496815167）
         */
        private String templateId;
        /**
         * 模板对应的内容描述
         */
        private String content;
    }
}